﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QuanLyKhachHang.Forms
{
    #region using
    using QuanLyKhachHang.BUS;
    using QuanLyKhachHang.DTO;
    using QuanLyKhachHang.Utilities;
    using System.IO;
    using NPOI.HSSF.UserModel;
    #endregion

    public partial class frmKHKhongSD : Form
    {
        private delegate void TimeTask();
        private frmWaiting waiting;
        private DataSet objDonViDS;
        private DataTable dataTable = new DataTable();
        private string maDonVi;
        private int thang;
        private int nam;

        public frmKHKhongSD()
        {
            InitializeComponent();
            InitGridViewHienThi();
        }

        public void InitGridViewHienThi()
        {
            string str = "";
            long i = 0;
            DataColumn col1 = new DataColumn("STT", str.GetType());
            DataColumn col2 = new DataColumn("TENKH", str.GetType());
            DataColumn col3 = new DataColumn("LOAIHINH", str.GetType());

            DataColumn col4 = new DataColumn("NGANH", str.GetType());
            DataColumn col5 = new DataColumn("DIACHI", str.GetType());
            DataColumn col6 = new DataColumn("DICHVU", str.GetType());

            DataColumn col7 = new DataColumn("SL", i.GetType());
            DataColumn col8 = new DataColumn("DOANHTHU", i.GetType());
            DataColumn col9 = new DataColumn("THANG", str.GetType());
            DataColumn col10 = new DataColumn("NAM", str.GetType());
            dataTable.Columns.Add(col1);
            dataTable.Columns.Add(col2);
            dataTable.Columns.Add(col3);
            dataTable.Columns.Add(col4);
            dataTable.Columns.Add(col5);
            dataTable.Columns.Add(col6);
            dataTable.Columns.Add(col7);
            dataTable.Columns.Add(col8);
            dataTable.Columns.Add(col9);
            dataTable.Columns.Add(col10);
        }

        public void LoadDonVi()
        {
            var objBUS = new DonViBUS(GlobalVariables.g_strConnectionString);

            try
            {
                var objDS = objBUS.SelectAll();

                for (int i = 0; i < objDS.Tables["DonVi"].Rows.Count; i++)
                {
                    DataRow row = objDS.Tables["DonVi"].Rows[i];
                    cbxDonVi.Items.Add(new DonViDTO { MADONVI = row["MADONVI"].ToString(), TENDONVI = row["TENDONVI"].ToString() });
                }

                if (cbxDonVi.Items.Count > 0)
                    cbxDonVi.SelectedIndex = 0;
            }
            catch (System.Exception e)
            {
                throw new Exception(e.Message, e.InnerException);
            }
        }

        public bool ValidateInput()
        {
            if (cbxDonVi.Text.Equals(""))
            {
                MessageBox.Show("Bạn chưa chọn đơn vị", "Bao Loi",
                    MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return false;
            }

            if (txtThang.Text.Equals(""))
            {
                MessageBox.Show("Bạn chưa nhập tháng", "Bao Loi",
                    MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return false;
            }

            if (txtNam.Text.Equals(""))
            {
                MessageBox.Show("Bạn chưa nhập năm", "Bao Loi",
                    MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return false;
            }

            if (!Utils.IsNumeric(txtThang.Text))
            {
                MessageBox.Show("Tháng phải là số hợp lệ", "Bao Loi",
                    MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return false;
            }
            else
            {
                if (int.Parse(txtThang.Text) < 1 || int.Parse(txtThang.Text) > 12)
                {
                    MessageBox.Show("Tháng phải từ 1-12 ", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return false;
                }
            }

            if (!Utils.IsNumeric(txtNam.Text))
            {
                MessageBox.Show("Năm phải là số hợp lệ", "Bao Loi",
                    MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return false;
            }
            else
            {
                if (int.Parse(txtNam.Text) <= 0)
                {
                    MessageBox.Show("Năm phải từ > 0 ", "Bao Loi",
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return false;
                }
            }

            return true;
        }

        private void btnXem_Click(object sender, EventArgs e)
        {
            if (ValidateInput())
            {
                dataTable.Clear();
                dtgvDanhSachHienThi.DataSource = null;
                dtgvDanhSachHienThi.Columns.Clear();

                var objBUS = new KH_CO_SDBUS(GlobalVariables.g_strConnectionString);
                var objDS = objBUS.SelectKHKhongSDByMADONVITHANGNAM(((DonViDTO)cbxDonVi.SelectedItem).MADONVI, int.Parse(txtThang.Text), int.Parse(txtNam.Text));

                int count = 0;
                for (int i = 0; i < objDS.Tables[0].Rows.Count; i++)
                {
                    DataRow row = objDS.Tables[0].Rows[i];

                    KH_CO_SD_TIEMNANGDTO khmoi = new KH_CO_SD_TIEMNANGDTO
                    {
                        STT = row["STT"].ToString().Substring(2),
                        THANG = int.Parse(row["THANG"].ToString()),
                        NAM = int.Parse(row["NAM"].ToString()),
                        TENKH = row["TENKH"].ToString(),
                        LOAIHINH = row["LOAIHINH"].ToString(),
                        NGANH = row["NGANH"].ToString(),
                        DIACHI = row["DIACHI"].ToString(),
                        DIENTHOAI = row["DIENTHOAI"].ToString(),
                        FAX = row["FAX"].ToString(),
                        NGAYKINIEM = row["NGAYKINIEM"].ToString(),
                        TENNV = row["TENNV"].ToString(),
                        NGAYSINHNV = row["NGAYSINHNV"].ToString(),
                        DIENTHOAINV = row["DIENTHOAINV"].ToString(),
                        EMAILNV = row["EMAILNV"].ToString(),
                        DICHVU = row["DICHVU"].ToString(),
                        SL = int.Parse(row["SL"].ToString()),
                        DOANHTHU = long.Parse(row["DOANHTHU"].ToString()),
                    };

                    DataRow row2;
                    dataTable.Rows.Add();
                    row2 = dataTable.Rows[count];

                    row2["STT"] = khmoi.STT;
                    row2["TENKH"] = khmoi.TENKH;
                    row2["LOAIHINH"] = khmoi.LOAIHINH;
                    row2["NGANH"] = khmoi.NGANH;
                    row2["DIACHI"] = khmoi.DIACHI;
                    row2["DICHVU"] = khmoi.DICHVU;
                    row2["SL"] = khmoi.SL;
                    row2["DOANHTHU"] = khmoi.DOANHTHU;
                    row2["THANG"] = khmoi.THANG;
                    row2["NAM"] = khmoi.NAM;

                    count++;
                }

                DataView objTimeSheetDV = new System.Data.DataView(dataTable);
                objTimeSheetDV.AllowNew = false;
                dtgvDanhSachHienThi.AutoGenerateColumns = false;
                dtgvDanhSachHienThi.DataSource = objTimeSheetDV;

                DataGridViewTextBoxColumn objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "STT",
                    DataPropertyName = "STT",
                    Name = "STT",
                    Width = 30
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "Tên KH",
                    DataPropertyName = "TenKH",
                    Name = "TenKH",
                    Width = 150
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "Loại hình",
                    DataPropertyName = "LoaiHinh",
                    Name = "LoaiHinh",
                    Width = 60
                };

                dtgvDanhSachHienThi.Columns.Add(objColumn);


                objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "Ngành nghề KD Chính",
                    DataPropertyName = "Nganh",
                    Name = "Nganh",
                    Width = 120
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "Địa chỉ",
                    DataPropertyName = "DiaChi",
                    Name = "DiaChi",
                    Width = 120
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "Dịch vụ",
                    DataPropertyName = "DichVu",
                    Name = "DichVu",
                    Width = 120
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "Sản lượng",
                    DataPropertyName = "SL",
                    Name = "SL",
                    Width = 60
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    HeaderText = "Doanh thu",
                    DataPropertyName = "DoanhThu",
                    Name = "DoanhThu",
                    Width = 60
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    DataPropertyName = "THANG",
                    Name = "THANG",
                    Visible = false
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                objColumn = new DataGridViewTextBoxColumn
                {
                    DataPropertyName = "NAM",
                    Name = "NAM",
                    Visible = false
                };
                dtgvDanhSachHienThi.Columns.Add(objColumn);

                dtgvDanhSachHienThi.ClearSelection();
            }
        }

        private void frmKHCoSD_Load(object sender, EventArgs e)
        {
            LoadDonVi();
        }

        private void dtgvDanhSachHienThi_Click(object sender, EventArgs e)
        {
            try
            {
                string stt = dtgvDanhSachHienThi.SelectedRows[0].Cells[0].Value.ToString();
                var objBUS = new KH_CO_SDBUS(GlobalVariables.g_strConnectionString);
                thang = int.Parse(dtgvDanhSachHienThi.SelectedRows[0].Cells["THANG"].Value.ToString());
                nam = int.Parse(dtgvDanhSachHienThi.SelectedRows[0].Cells["NAM"].Value.ToString());
                var objDS = objBUS.SelectByID(stt, thang, nam);
                if (objDS.Tables[0].Rows.Count > 0)
                {
                    var row = objDS.Tables[0].Rows[0];
                    txtTenKH.Text = row["TENKH"].ToString();
                    txtLoaiHinh.Text = row["LOAIHINH"].ToString();
                    txtFax.Text = row["FAX"].ToString();
                    txtTenNV.Text = row["TENNV"].ToString();
                    txtDichVu.Text = row["DICHVU"].ToString();
                    txtTGBatDau.Text = row["TGBATDAU"].ToString();
                    txtDiaChi.Text = row["DIACHI"].ToString();
                    txtNganh.Text = row["NGANH"].ToString();
                    txtDienThoai.Text = row["DIENTHOAI"].ToString();
                    txtNgayKN.Text = row["NGAYKINIEM"].ToString();
                    txtEmailNV.Text = row["EMAILNV"].ToString();
                    txtNgaySinhNV.Text = row["NGAYSINHNV"].ToString();
                    txtDienThoaiNV.Text = row["DIENTHOAINV"].ToString();
                    txtSoLuong.Text = row["SL"].ToString();
                    txtDoanhThu.Text = row["DOANHTHU"].ToString();
                }
            }
            catch
            {
            }
        }

        private void frmKHKhongSD_Load(object sender, EventArgs e)
        {
            LoadDonVi();
        }

    }
}
